// 解题思路：
// 找最大子矩阵（矩阵中所有元素的和），就需要能够遍历子矩阵
// 遍历子矩阵的方法：确定左上角元素和右下角元素，就能确定一个矩阵
// 因此需要枚举左上角元素和右下角元素
// 枚举左上角元素需要两层 for 循环，右下角元素需要两层 for 循环，因此一共四层 for 循环
// 枚举出一个子矩阵，就需要计算矩阵的大小，这里需要用到前缀和数组，需要提前计算出来，方便查表
// 前缀和数组的计算：sum[i][j] = sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1] + arr[i][j]
// 子矩阵大小的计算：value = sum[x2][y2] - sum[x1 - 1][y2] - sum[x2][y1 - 1] + sum[x1 - 1][y1 - 1]
// 选出最大值并打印

import java.util.Scanner;

public class MaxSubMatrix {
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[][] grid = new int[n][n];
        for(int i = 0; i < n; i++){
            for(int j = 0; j < n; j++){
                grid[i][j] = in.nextInt();
            }
        }
        int[][] sum = new int[n + 1][n + 1];
        for(int i = 1; i <= n; i++){
            for(int j = 1; j <= n; j++){
                sum[i][j] = sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1] + grid[i - 1][j - 1];
            }
        }
        int ret = -0x3f3f3f3f;
        for(int i = 1; i <= n; i++){
            for(int j = 1; j <= n; j++){
                for(int k = i; k <= n; k++){
                    for(int l = j; l <= n; l++){
                        int area = sum[k][l] - sum[i - 1][l] - sum[k][j - 1] + sum[i - 1][j - 1];
                        ret = Math.max(ret, area);
                    }
                }
            }
        }
        System.out.println(ret);
    }
}
